<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <mycomp1></mycomp1>
        <mycomp2></mycomp2>
    </div>

    <script>
        // 定义中央事件总线对象
        var bus = new Vue()
        var vm = new Vue({
            el: "#app",
            components: {
                mycomp1: {
                    template: 
                    `<div>
                        <p>我是mycomp1组件</p>
                        <input type="button" @click="send" value="mycomp1发送信息">    
                    </div>`,
                    methods: {
                        send() {
                            // 使用emit触发指定事件
                            bus.$emit('demo', '你好，这是mycomp1发送的信息！')
                        }
                    }
                },
                mycomp2: {
                    template: 
                    `<div>
                        <p>我是mycomp2组件</p>
                    </div>`,
                    // 在组件挂载后，使用bus调用on监听指定事件
                    mounted() {
                        bus.$on('demo', (value) => {
                            alert(`接收到数据：${value}`)
                        })
                    },
                }
            }
        })
    </script>
</body>
</html>